#!/usr/bin/python3
# coding=utf-8

import numpy as np
import os

def gaussian(x):
    """计算Gaussian函数：f(x) = e^{-x²}
    
    参数:
        x: 输入数组
        
    返回:
        计算结果数组，范围(0,1]
    """
    return np.exp(-np.square(x))

def gen_golden_data_gaussian():
    """生成Gaussian函数的测试数据"""
    # 配置参数（保持原有结构）
    dtype = np.float16  # 保持半精度浮点
    input_shape = [500, 1300]  # 保持原有维度
    
    # 生成输入数据（范围调整为-3到3以覆盖Gaussian主要变化区域）
    # 使用正态分布替代均匀分布更符合实际场景（可选）
    x = np.random.uniform(-3, 3, input_shape).astype(dtype)
    
    # 计算Gaussian函数（添加安全处理避免数值溢出）
    with np.errstate(over='ignore'):  # 忽略浮点溢出警告
        golden = gaussian(x).astype(dtype)
    
    # 创建输入输出目录（保持原有方式）
    os.makedirs("./input", exist_ok=True)
    os.makedirs("./output", exist_ok=True)
    
    # 保存文件（保持原有格式）
    x.tofile("./input/input_x.bin")
    golden.tofile("./output/golden.bin")
    
    # 打印统计信息（调试用）
    print(f"输入数据范围: [{x.min():.4f}, {x.max():.4f}]")
    print(f"输出数据范围: [{golden.min():.6f}, {golden.max():.6f}]")

if __name__ == "__main__":
    gen_golden_data_gaussian()